package com.shujia.base;

import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisCluster;

import java.util.HashSet;

public class RedisClusterAPI {
    public static void main(String[] args) {
        //只适用于连接单个redis服务
//        Jedis jedis = new Jedis("192.168.136.100", 7000);
//        String name = jedis.get("name");
//        System.out.println(name);

        //创建JedisCluster对象，连接redis集群
        //public JedisCluster(Set<HostAndPort> nodes)
        //先将集群中的每一个redis服务封装在一个Set集合中
        HashSet<HostAndPort> hostAndPorts = new HashSet<>();
        //public HostAndPort(String host, int port)
        hostAndPorts.add(new HostAndPort("192.168.136.100",7000));
        hostAndPorts.add(new HostAndPort("192.168.136.100",7001));
        hostAndPorts.add(new HostAndPort("192.168.136.100",7002));
        hostAndPorts.add(new HostAndPort("192.168.136.100",7003));
        hostAndPorts.add(new HostAndPort("192.168.136.100",7004));
        hostAndPorts.add(new HostAndPort("192.168.136.100",7005));

        JedisCluster jedisCluster = new JedisCluster(hostAndPorts);
//        String name = jedisCluster.get("name");
//        System.out.println(name);

        //绝大部分情况下，使用redis集群的时候和使用单个redis服务的方式是一样的
        //有一个地方需要注意，就是在删除键的时候,若键不在同一个slot范围内，不能一次性同时删除多个,只能一个一个删除
        //推荐一个一个删除
        jedisCluster.del("name");
        jedisCluster.del("age");


        //释放资源
//        jedis.close();
        jedisCluster.close();

    }
}
